package day18;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Demo04 {
	public static void main(String[] args) {
		test02();
	}

	// 数组转集合
	private static void test02() {
		String[] arr = { "aaa", "bbb", "ccc", "ddd", "eee", "fff" };
		List<String> list = Arrays.asList("aaa", "bbb", "ccc", "ddd", "eee", "fff");
		// java.lang.UnsupportedOperationException
		// list.add("AAA");
		// 该List的本质其实是数组, 所以它不可以增减元素

		// 可以使用集合的其它功能, 如判断是否包含某个元素
		System.out.println(list.contains("aaa"));
	}

	// Collection转换成数组
	private static void test01() {
		List<String> list = new ArrayList<String>() {
			{
				add("aaa");
				add("bbb");
				add("ccc");
				add("ddd");
				add("eee");
				add("fff");
			}
		};

		//		Object[] arr = list.toArray();
		//		System.out.println(arr.length);
		//		System.out.println(Arrays.toString(arr));
		//		String str = (String) arr[0];

		// 如果参数数组的长度足够存储集合中的所有元素
		// 向参数数组中存入集合的元素
		// 如果数组存不满, 其余的位置置为null
		// 如果参数数组的长度不够存储集合中的所有元素
		// 会按照集合的size创建一个新的数组
		// 将集合中的元素复制到数组中, 并返回这个新数组
		String[] arr2 = new String[10];
		String[] arr3 = list.toArray(arr2);
		System.out.println(Arrays.toString(arr2));
		System.out.println(Arrays.toString(arr3));
		System.out.println(arr2);
		System.out.println(arr3);
		System.out.println(arr2 == arr3);

	}
}
